	/**
	 * jsonデータをhtmlリスト形式へ
	 */
	$.jsonengine.utils.json2html = function(json) {
		if (!json) {
			return json;
		} else if (Object.prototype.toString.call(json) === '[object Object]') {
			var dl = $('<dl class="object_Object">');
			for ( var key in json) {
				dl.append($('<dt class="key">').html(key));
				dl.append($('<dd class="value">').html(this.json2html(json[key])));
			}
			return dl;
		} else if (Object.prototype.toString.call(json) === '[object Array]') {
			var list = $('<ol class="object_Array">');
			var json_length = json.length;
			for ( var i = 0; i < json_length; i++) {
				list.append($('<li class="value">').html(this.json2html(json[i])));
			}
			return list;
		} else {
			return json;
		}
	};
	/**
	 * TODO htmlリストをjsonデータ形式へ
	 */
	$.jsonengine.utils.html2json = function(html) {
		if (!html) {
			return html;
		} else {
			src = $(html);
			console.log(src)
			object_Object = src.attr('class').match(/object_Object/);
			object_Array = src.attr('class').match(/object_Array/);
			if (object_Object === null && object_Array === null) {
				if (src[0].tagName === 'DD') {
					if (src.eq(0).children(0).length > 0) {
						object_Object = 1;
					}
				}
			}
			if (!object_Object) {
				var array = [];
				children = src.children();
				for ( var i = 0; i < children.length; i++) {
					grandchildren = children.eq(i).eq(0);
					if (grandchildren.children(0).length == 0) {
						// console.log(grandchildren);
					}
					this.html2json(children.eq(i));
				}
				return array;
			} else if (!object_Array) {
				var object = {};
				var children = src.children();
				for ( var i = 0; i < children.length; i++) {
					// console.log(children.eq(i));
					this.html2json(children.eq(i));
				}
				return object;
			} else {
				return src;
			}
		}
	};
